package com.ruoyi.system.domain.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.page.PageDomain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 任务信息对象 t_task_info
 *
 * @author ruoyi
 * @date 2024-04-16
 */
public class TTaskInfoDto extends PageDomain
{

    /** 任务id */
    private Long id;
    private Long taskId;
    // 查看会员等级详情（1-一级；2-二级；3-三级）
    private Integer level;

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    /** 任务名称 */
    @Excel(name = "任务名称")
    private String taskName;

    /** 任务名称编码 */
    @Excel(name = "任务名称编码")
    private String taskNameCode;

    /** 任务图片 */
    @Excel(name = "任务图片")
    private String taskUrl;

    /** 任务赏金 */
    @Excel(name = "任务赏金")
    private BigDecimal taskMoney;

    /** 任务数量 */
    @Excel(name = "任务数量")
    private Integer taskNum;

    /** 完成数量 */
    @Excel(name = "完成数量")
    private Integer finishNum;

    /** 接取任务数量 */
    @Excel(name = "接取任务数量")
    private Integer abjectNum;

    /** 接任务后有效时间 */
    @Excel(name = "接任务后有效时间")
    private Integer finishTime;

    /** 任务结束时间不设置表示长期有效 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "任务结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date taskFinishTime;

    /** 活动介绍 */
    @Excel(name = "活动介绍")
    private String taskInfo;

    /** 介绍编码 */
    @Excel(name = "介绍编码")
    private String taskInfoCode;
    /** 介绍编码 */
    @Excel(name = "任务截取人名称")
    private String userName;

    /** 需要采集截取任务用户信息（0-所有；1-文本信息；2-图片信息） */
    @Excel(name = "需要采集截取任务用户信息", readConverterExp = "0=-所有；1-文本信息；2-图片信息")
    private Integer needInfo;

    /** 视频教程 */
    @Excel(name = "视频教程")
    private String teachView;

    /** 文档教程 */
    @Excel(name = "文档教程")
    private String teachWord;

    /** 审核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Integer auditTime;

    /** 步骤描述链接（做单步骤）有就展示，没有就不展示 */
    @Excel(name = "步骤描述链接", readConverterExp = "做=单步骤")
    private String procedureDoc;

    /** 审核状态（0-已驳回；1-待提交；2-提交待审核；3-通过 */
    @Excel(name = "审核状态", readConverterExp = "0-已驳回；1-待提交；2-提交待审核；3-通")
    private Integer auditStatus;

    /**上架状态（1-下架；2-上架） */
    @Excel(name = "上架状态", readConverterExp = "1-下架；2-上架")
    private Integer shelfStatus;

    /** 发布人 */
    @Excel(name = "发布人")
    private Long userId;

    @Excel(name = "是否有效")
    private Integer isDelete;

    // 1-已接取，2-为接取
    @Excel(name = "是否接取任务")
    private Integer accessStatus;

    @Excel(name = "交易类型（1-任务收入；2-佣金收入；3-体现支出；4-购买支出；5-充值明细）")
    private Integer moneyDetailType;


    @Excel(name = "收益类型 0-所有收益类型 1-任务收入；2-佣金收入；")
    private Integer earningsType;
    @Excel(name = "任务类型：1-新手任务；2-日常任务")
    private Integer taskType;

    @Excel(name = "任务详情参照图")
    private String exampleImg;

    @Excel(name = "任务详情需要的文字信息")
    private String needContent;

    // 提交任务的  -图片凭证（用于截取任务使用）
    private String picVoucher;
    // 提交任务的  -文字信息（用户接任务的认证信息
    private String contentText;

    public String getPicVoucher() {
        return picVoucher;
    }

    public void setPicVoucher(String picVoucher) {
        this.picVoucher = picVoucher;
    }

    public String getContentText() {
        return contentText;
    }

    public void setContentText(String contentText) {
        this.contentText = contentText;
    }

    public String getExampleImg() {
        return exampleImg;
    }

    public void setExampleImg(String exampleImg) {
        this.exampleImg = exampleImg;
    }

    public String getNeedContent() {
        return needContent;
    }

    public void setNeedContent(String needContent) {
        this.needContent = needContent;
    }

    public Integer getMoneyDetailType() {
        return moneyDetailType;
    }

    public void setMoneyDetailType(Integer moneyDetailType) {
        this.moneyDetailType = moneyDetailType;
    }

    public Integer getEarningsType() {
        return earningsType;
    }

    public void setEarningsType(Integer earningsType) {
        this.earningsType = earningsType;
    }

    public Integer getAccessStatus() {
        return accessStatus;
    }

    public void setAccessStatus(Integer accessStatus) {
        this.accessStatus = accessStatus;
    }
    //查看流程图
    List<TTaskPicDto> taskPicList;
    List<TTaskPicDto> submitTaskPicList;

    List<TTaskPicDto> submitTaskContentList;
    // 任务类型标签
    List<TBaseInfoDto> baseDtoList;
    // 任务需求标签
    List<TBaseInfoDto> demandList;

    private Integer version;
    // 审核原因
    private String reason;

    public List<TBaseInfoDto> getDemandList() {
        return demandList;
    }

    public void setDemandList(List<TBaseInfoDto> demandList) {
        this.demandList = demandList;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }

    public Integer getShelfStatus() {
        return shelfStatus;
    }

    public void setShelfStatus(Integer shelfStatus) {
        this.shelfStatus = shelfStatus;
    }

    public List<TBaseInfoDto> getBaseDtoList() {
        return baseDtoList;
    }

    public void setBaseDtoList(List<TBaseInfoDto> baseDtoList) {
        this.baseDtoList = baseDtoList;
    }

    public List<TTaskPicDto> getTaskPicList() {
        return taskPicList;
    }

    public void setTaskPicList(List<TTaskPicDto> taskPicList) {
        this.taskPicList = taskPicList;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setTaskName(String taskName)
    {
        this.taskName = taskName;
    }

    public String getTaskName()
    {
        return taskName;
    }
    public void setTaskNameCode(String tastNameCode)
    {
        this.taskNameCode = tastNameCode;
    }

    public String getTaskNameCode()
    {
        return taskNameCode;
    }
    public void setTaskUrl(String taskUrl)
    {
        this.taskUrl = taskUrl;
    }

    public String getTaskUrl()
    {
        return taskUrl;
    }
    public void setTaskMoney(BigDecimal taskMoney)
    {
        this.taskMoney = taskMoney;
    }

    public BigDecimal getTaskMoney()
    {
        return taskMoney;
    }
    public void setTaskNum(Integer taskNum)
    {
        this.taskNum = taskNum;
    }

    public Integer getTaskNum()
    {
        return taskNum;
    }
    public void setFinishNum(Integer finishNum)
    {
        this.finishNum = finishNum;
    }

    public Integer getFinishNum()
    {
        return finishNum;
    }
    public void setAbjectNum(Integer abjectNum)
    {
        this.abjectNum = abjectNum;
    }

    public Integer getAbjectNum()
    {
        return abjectNum;
    }
    public void setFinishTime(Integer finishTime)
    {
        this.finishTime = finishTime;
    }

    public Integer getFinishTime()
    {
        return finishTime;
    }
    public void setTaskFinishTime(Date taskFinishTime)
    {
        this.taskFinishTime = taskFinishTime;
    }

    public Date getTaskFinishTime()
    {
        return taskFinishTime;
    }
    public void setTaskInfo(String taskInfo)
    {
        this.taskInfo = taskInfo;
    }

    public String getTaskInfo()
    {
        return taskInfo;
    }
    public void setTaskInfoCode(String taskInfoCode)
    {
        this.taskInfoCode = taskInfoCode;
    }

    public String getTaskInfoCode()
    {
        return taskInfoCode;
    }
    public void setNeedInfo(Integer needInfo)
    {
        this.needInfo = needInfo;
    }

    public Integer getNeedInfo()
    {
        return needInfo;
    }
    public void setTeachView(String teachView)
    {
        this.teachView = teachView;
    }

    public String getTeachView()
    {
        return teachView;
    }
    public void setTeachWord(String teachWord)
    {
        this.teachWord = teachWord;
    }

    public String getTeachWord()
    {
        return teachWord;
    }

    public Integer getAuditTime() {
        return auditTime;
    }

    public void setAuditTime(Integer auditTime) {
        this.auditTime = auditTime;
    }

    public void setProcedureDoc(String procedureDoc)
    {
        this.procedureDoc = procedureDoc;
    }

    public String getProcedureDoc()
    {
        return procedureDoc;
    }
    public void setAuditStatus(Integer auditStatus)
    {
        this.auditStatus = auditStatus;
    }

    public Integer getAuditStatus()
    {
        return auditStatus;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }

    public Integer getIsDelete() {
        return isDelete;
    }

    public void setIsDelete(Integer isDelete) {
        this.isDelete = isDelete;
    }

    public void setSubmitTaskContentList(List<TTaskPicDto> submitTaskContentList) {
        this.submitTaskContentList = submitTaskContentList;
    }

    public List<TTaskPicDto> getSubmitTaskPicList() {
        return submitTaskPicList;
    }

    public void setSubmitTaskPicList(List<TTaskPicDto> submitTaskPicList) {
        this.submitTaskPicList = submitTaskPicList;
    }

    public List<TTaskPicDto> getSubmitTaskContentList() {
        return submitTaskContentList;
    }

    public Integer getTaskType() {
        return taskType;
    }

    public void setTaskType(Integer taskType) {
        this.taskType = taskType;
    }

    public Long getTaskId() {
        return taskId;
    }

    public void setTaskId(Long taskId) {
        this.taskId = taskId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }
}
